// Auth API services
import { request } from './request.js'

// 用户登录
export function login(data) {
  return request({
    url: '/api/auth/login/',
    method: 'POST',
    data
  }).then(res => {
    console.log('登录响应:', res)
    // 确保返回标准格式的响应
    if (res && !res.code) {
      return {
        code: 200,
        message: '登录成功',
        ...res // 保留原有的access、refresh等字段
      }
    }
    return res
  }).catch(err => {
    console.error('登录错误:', err)
    throw err
  })
}

// 用户注册
export function register(data) {
  return request({
    url: '/api/auth/register/',
    method: 'POST',
    data
  })
}

// 刷新Token
export function refreshToken(refresh) {
  return request({
    url: '/api/auth/token/refresh/',
    method: 'POST',
    data: { refresh }
  })
}

// 获取用户个人资料
export function getUserProfile() {
  return request({
    url: '/api/users/profile/',
    method: 'GET'
  })
}

// 更新用户个人资料
export function updateUserProfile(data) {
  return request({
    url: '/api/users/profile/update/',
    method: 'PUT',
    data
  }).then(res => {
    // 确保返回标准格式的响应
    if (res && !res.code) {
      return {
        code: 200,
        message: '个人资料更新成功',
        data: res
      }
    }
    return res
  })
}

// 获取企业员工档案
export function getEmployeeProfile() {
  return request({
    url: '/api/users/employee-profile/',
    method: 'GET'
  })
}

// 更新企业员工档案
export function updateEmployeeProfile(data) {
  return request({
    url: '/api/users/employee-profile/update/',
    method: 'POST',
    data
  })
}

// 获取企业列表
export function getCompanyList(params) {
  return request({
    url: '/api/users/companies/',
    method: 'GET',
    params
  })
}

// 更新用户密码
export function updatePassword(data) {
  return request({
    url: '/api/users/password/update/',
    method: 'POST',
    data
  }).then(res => {
    // 确保返回标准格式的响应
    if (res && !res.code) {
      return {
        code: 200,
        message: '密码修改成功',
        data: res
      }
    }
    return res
  })
}

export default {
  login,
  register,
  refreshToken,
  getUserProfile,
  updateUserProfile,
  updatePassword,
  getEmployeeProfile,
  updateEmployeeProfile,
  getCompanyList
} 